// // noinspection JSIgnoredPromiseFromCall,DuplicatedCode,ES6PreferShortImport
//
// import { app, BrowserWindow, BrowserView, protocol, globalShortcut, ipcMain } from 'electron';
// // import installExtension, { VUEJS3_DEVTOOLS } from 'electron-devtools-installer';
// import installExtension, { VUEJS3_DEVTOOLS } from 'electron-devtools-installer';
// // import { ACHEME, getRenderContentUrl } from './config/run';
// import { ACHEME, getRenderContentUrl } from './config/run';
//
// const { createWindow } = require('./window/createWindow');
// const { ipc, BaseWindow } = require('../lib/sugar-electron');
// import path from 'path';
//
// // const { ipc, BaseWindow } = require('sugar-electron');
//
// // BaseWindow.setDefaultOption({
// //   webPreferences: {
// //     nodeIntegration: true,
// //     enableRemoteModule: true,
// //     contextIsolation: false,
// //   },
// // });
//
// global.mainMethods = {
//   createWindow,
// };
//
// const isDevelopment = process.env.NODE_ENV !== 'production';
//
// protocol.registerSchemesAsPrivileged([
//   {
//     scheme: ACHEME,
//     privileges: {
//       secure: true,
//       standard: true,
//     },
//   },
// ]);
//
// async function createMainWindow() {
//   const mainWindow = new BaseWindow('main', {
//     width: 1200,
//     height: 900,
//     show: true,
//     webPreferences: {
//       webSecurity: false,
//     },
//   });
//   const openUrl = getRenderContentUrl('/window-event');
//   // globalShortcut.register('Ctrl+Shift+i', () => {
//   //   const mainWindowInstance = mainWindow.getInstance();
//   //   mainWindowInstance.webContents.openDevTools({ mode: 'right' });
//   // });
//   const mainBrowserWindowInstance = await mainWindow.open({ url: openUrl });
//   // mainWindow.on('ready-to-show', () => {
//   //   mainBrowserWindowInstance.show();
//   // });
//
//   // try {
//   //   const view1 = new BrowserView();
//   //   mainBrowserWindowInstance.setBrowserView(view1);
//   //   view1.setBounds({ x: 0, y: 50, width: 1200, height: 820 });
//   //   view1.setAutoResize({
//   //     width: true,
//   //     height: true,
//   //   });
//   //
//   //   // 监听窗口大小变化事件
//   //   // view1.on('resize', () => {
//   //   //   // 获取窗口的当前大小
//   //   //   let { width, height } = view1.getBounds();
//   //   //   // 手动调整浏览器视图的大小
//   //   //   view1.setBounds({ x: 0, y: 50, width, height });
//   //   // });
//   //   view1.webContents.loadURL('https://juejin.cn/?utm_source=infinitynewtab.com');
//   //
//   //   console.log('view1', view1);
//   // } catch (error) {
//   //   console.log(111, error);
//   // }
//   //
//   // try {
//   //   setTimeout(() => {
//   //     const view2 = new BrowserView();
//   //     mainBrowserWindowInstance.setBrowserView(view2);
//   //     view2.setBounds({ x: 0, y: 50, width: 1200, height: 820 });
//   //     view2.setAutoResize({
//   //       width: true,
//   //       height: true,
//   //     });
//   //     // 监听窗口大小变化事件
//   //     // view2.on('resize', () => {
//   //     //   // 获取窗口的当前大小
//   //     //   let { width, height } = view2.getBounds();
//   //     //   // 手动调整浏览器视图的大小
//   //     //   view2.setBounds({ x: 0, y: 50, width, height });
//   //     // });
//   //     view2.webContents.loadURL('https://form.antdv.com/');
//   //
//   //     console.log('view2', view2);
//   //   }, 5000);
//   // } catch (error) {
//   //   console.log(111, error);
//   // }
// }
//
// app.on('ready', async () => {
//   if (isDevelopment && !process.env.IS_TEST) {
//     try {
//       await installExtension(VUEJS3_DEVTOOLS);
//     } catch (e) {
//       console.error('Vue Devtools 安装失败', e.toString());
//     }
//   }
//   console.log('ready 111');
//   createMainWindow();
//   globalShortcutInit();
//
//   initIpcMain();
// });
//
// app.on('window-all-closed', () => {
//   if (process.platform !== 'darwin') {
//     app.quit();
//   }
// });
//
// app.on('activate', () => {
//   if (!BrowserWindow.getAllWindows().length) {
//     createMainWindow();
//   }
// });
//
// ipc.response('home_view', (data, cb) => {
//   console.log(data);
//   cb('main send message');
// });
//
// function globalShortcutInit() {
//   globalShortcut.register('Ctrl+Shift+i', () => {
//     const win = BrowserWindow.getFocusedWindow();
//     win && win.webContents.toggleDevTools();
//   });
// }
//
// function initIpcMain() {
//   ipcMain.on('sendMain__workbenchApplicationWindow_sendAppInfo', (event, appInfo) => {
//     handleWorkbenchApplicationWindow(appInfo);
//   });
//
//   ipcMain.on('sendMain__workbenchApplicationWindow_changeApp', (event, appId) => {
//     handleWorkbenchApplicationWindowAppChange(appId);
//   });
//
//   ipcMain.on('sendMain__workbenchApplicationWindow_reloadApp', (event, appId) => {
//     handleWorkbenchApplicationWindowReloadApp(appId);
//   });
//
//   ipcMain.on('sendMain__workbenchApplicationWindow_openDevtools', (event, appId) => {
//     handleWorkbenchApplicationWindowOpenDevtools(appId);
//   });
// }
//
// async function createWorkbenchApplicationWindow() {
//   const mainWindow = new BaseWindow('main', {
//     width: 1200,
//     height: 900,
//     show: true,
//     webPreferences: {
//       // preload: path.join(__dirname, 'workbenchApplicationWindowPreload.js'),
//       webSecurity: false,
//     },
//   });
//   const openUrl = getRenderContentUrl('/multiple-tab');
//   const mainBrowserWindowInstance = await mainWindow.open({ url: openUrl });
//   // mainWindow.on('ready-to-show', () => {
//   //   mainBrowserWindowInstance.show();
//   // });
//   return {
//     proxyWindow: mainWindow,
//     browserWindow: mainBrowserWindowInstance,
//   };
// }
//
// let workbenchApplicationWindow;
//
// async function handleWorkbenchApplicationWindow(appInfo) {
//   try {
//     if (workbenchApplicationWindow) {
//       workbenchApplicationWindow.show();
//     } else {
//       const { proxyWindow, browserWindow } = await createWorkbenchApplicationWindow();
//       workbenchApplicationWindow = browserWindow;
//       // workbenchApplicationWindow.webContents.openDevTools({
//       //   mode: 'detach',
//       // });
//       workbenchApplicationWindow.on('closed', () => {
//         workbenchApplicationWindow = null;
//       });
//     }
//
//     let browserViewMap = workbenchApplicationWindow.browserViewMap;
//     if (!browserViewMap) {
//       browserViewMap = workbenchApplicationWindow.browserViewMap = new Map();
//     }
//     let browserViewInfo = browserViewMap.get(appInfo.id);
//
//     if (browserViewInfo) {
//       return;
//     }
//
//     const view = new BrowserView({
//       webPreferences: {
//         preload: path.join(__dirname, 'viewPreload.js'),
//       },
//     });
//     workbenchApplicationWindow.setBrowserView(view);
//     view.setBounds({ x: 0, y: 50, width: 1200, height: 820 });
//     view.setAutoResize({
//       width: true,
//       height: true,
//     });
//     view.webContents.loadURL(appInfo.loadUrl);
//     browserViewMap.set(appInfo.id, view);
//
//     workbenchApplicationWindow.webContents.send(
//       'sendRenderer__workbenchApplicationWindow_openAppInfo',
//       {
//         data: {
//           appInfo,
//         },
//         browserViewMap: new Map(),
//       },
//     );
//   } catch (error) {
//     console.log('handleWorkbenchApplicationWindow catch error >>> ', error);
//   }
// }
//
// function handleWorkbenchApplicationWindowAppChange(appId) {
//   try {
//     const browserView = workbenchApplicationWindow.browserViewMap.get(appId);
//     workbenchApplicationWindow.setBrowserView(browserView);
//   } catch (error) {
//     console.log('handleWorkbenchApplicationWindowAppChange catch error >>> ', error);
//   }
// }
//
// function handleWorkbenchApplicationWindowReloadApp(appId) {
//   try {
//     const browserView = workbenchApplicationWindow.browserViewMap.get(appId);
//     browserView.webContents.reload();
//   } catch (error) {
//     console.log('handleWorkbenchApplicationWindowReloadApp catch error >>> ', error);
//   }
// }
//
// function handleWorkbenchApplicationWindowOpenDevtools(appId) {
//   try {
//     const browserView = workbenchApplicationWindow.browserViewMap.get(appId);
//     browserView.webContents.openDevTools();
//   } catch (error) {
//     console.log('handleWorkbenchApplicationWindowOpenDevtools catch error >>> ', error);
//   }
// }
//
// exports.getWorkbenchApplicationWindow = function getWorkbenchApplicationWindow() {
//   return workbenchApplicationWindow;
// };
